/**
 * Team Queue（二维队列）
 * https://acm.hdu.edu.cn/showproblem.php?pid=1387
 * 每次插入遍历一整个队列，如果发现队列里面有同样队伍的人，插入到此人后面，如果没有，插入到最后一个，
 */
#include <iostream>
#include <queue>
#include <string>
#include <cstring>

using namespace std;

int team[1000000]; // 编号

int main()
{

    int t; // 队伍数量
    int cases = 0;
    while (cin >> t && t)
    {
        ++cases;
        memset(team, 0, sizeof(team));
        for (int i = 1; i <= t; ++i)
        {
            int n;
            cin >> n;
            while (n--)
            {
                int x;
                cin >> x;
                team[x] = i;
            }
        }
        queue<int> q[1001];
        int s = 0, e = 0;
        string str;
        cout << "Scenario #" << cases << endl;
        while (cin >> str)
        {
            if (str == "STOP")
                break;
            if (str == "ENQUEUE")
            {
                int x, i;
                cin >> x;
                for (i = s; i < e; ++i)
                {
                    if (team[q[i].front()] == team[x])
                    {
                        break;
                    }
                }
                q[i].push(x);
                if (i == e)
                {
                    ++e;
                }
            }
            else
            {
                int val = q[s].front();
                q[s].pop();
                if (q[s].size() == 0)
                {
                    ++s;
                }
                cout << val << endl;
            }
        }
        cout << endl;
    }
    return 0;
}